/**
 * Created by 
 */
var pageNo = 1;
var limit = 12;
function doLoadNewsInfo() {
	$.post(realPath+"/path/specialnews/listSpecialnewsToJson", getParamData(),
			function(result) {
				if (result.state == 'Success') {
					clearHtml();
					createNewsInfoByTemplate(result.content);
				} else {
					alert("操作失败,原因："+result.content);
				}
			}
		);
}
function pagnation(totalCounts,totalPages,currentPageNo){
	var pagnation = $("#pagnation");
	var pagnationHtml = "";
	var pagePrevHtml = "";
	var pageNextHtml = "";
	var pageNumberHtml = "";
	
	pagnationHtml += "<span class=\"pageDown-sum\"><em>共<i>"+totalCounts+"</i>条记录</em><em>当前第 <i>"+currentPageNo+"</i>页 </em><i>/</i>共<i> "+totalPages+"</i>页</span>";
	if(totalPages > 0)
	{
		if(currentPageNo == 1)
		{
			pagePrevHtml = "<a class=\"page-prev\">上一页</a>";
			//总页码为 1，禁止下一页
			if(totalPages==1)
			{
				pageNextHtml = "<a class=\"page-next\">下一页</a>";
			}else{
				pageNextHtml = "<a href=\"javascript:goPage("+parseInt(currentPageNo+1)+")\" class=\"page-next\">下一页</a>";	
			}
		}else if(currentPageNo < totalPages){
			pagePrevHtml = "<a href=\"javascript:goPage("+parseInt(currentPageNo-1)+")\" class=\"page-prev\">上一页</a>";
			pageNextHtml = "<a href=\"javascript:goPage("+parseInt(currentPageNo+1)+")\" class=\"page-next\">下一页</a>";
		}else if(currentPageNo == totalPages){
			pagePrevHtml = "<a href=\"javascript:goPage("+parseInt(currentPageNo-1)+")\" class=\"page-prev\">上一页</a>";
			pageNextHtml = "<a class=\"page-next\">下一页</a>";
		}
		//总页码 <7
		if(totalPages < 7){
			for(var i = 0 ; i < totalPages ; i++){
				var currentClass = "";
				if((i+1) == currentPageNo){
					currentClass = "class = \"current\"";
				}
				pageNumberHtml += "<a href=\"javascript:goPage("+parseInt(i+1)+")\" "+currentClass+">"+(i+1)+"</a>";
			}
		}else{
			//判断是否后几页
			if(totalPages - currentPageNo - 4 > 0){
				var start = 0,end = 0;
				if(currentPageNo  < 3){
					start = 0;end = 6;
				}else{
					start = currentPageNo - 3 ; end = currentPageNo + 3;
				}
				for(var i = start ; i < end ; i++){
					var currentClass = "";
					if((i+1) == currentPageNo){
						currentClass = "class = \"current\"";
					}
					pageNumberHtml += "<a href=\"javascript:goPage("+parseInt(i+1)+")\" "+currentClass+">"+(i+1)+"</a>";
				}
				pageNumberHtml += "<span class=\"page-items\">...</span>";
				pageNumberHtml += "<a href=\"javascript:goPage("+totalPages+")\" >"+totalPages+"</a>";
			}else{
				pageNumberHtml += "<a href=\"javascript:goPage(1)\" >1</a>";
				pageNumberHtml += "<span class=\"page-items\">...</span>";
				for(var i =totalPages - 6 ; i < totalPages ; i++){
					var currentClass = "";
					if((i+1) == currentPageNo){
						currentClass = "class = \"current\"";
					}
					pageNumberHtml += "<a href=\"javascript:goPage("+parseInt(i+1)+")\" "+currentClass+">"+(i+1)+"</a>";
				}
			}
		}
		
		pagnation.html(pagnationHtml + pagePrevHtml + pageNumberHtml + pageNextHtml);
	}else{
		pagnation.html("<font color='red' size='+2'>没有要显示的数据</font>");
	}
	
}

function goPage(number){
	pageNo = number;
	doLoadNewsInfo();
}

function clearHtml(){
	 $("#NEWS-LIST li").each(function(index){
		 var id=$(this).attr("id");
		 if(id!='lastNewsInfo'){
			 $(this).remove();
		 }
     });       
}
//获取查询参数
function getParamData(){
	var title=$("#searchValue_title").val();
	if(title==undefined)
	{
		title='';
	}
	return {"pageNo":pageNo,"limit":limit,"title":title,"CSRF_TOKEN_FOR_FORM_PARAM_NAME":$('token-form-id').val()};
}
/**
* 根据模板创建新闻信息
*/
function createNewsInfoByTemplate(pageInfo){
	if(pageInfo.items.length>0){
		for(var index=0;index<pageInfo.items.length;index++){
			var newsReviewInfo = pageInfo.items[index];
			var currNews=$('#DATA-TEMPLATE').html();
			//currNews=currNews.replaceAll("%ctx%",realPath);
			currNews=currNews.replaceAll("%newsinfo.id%",newsReviewInfo.id);
			currNews=currNews.replaceAll("%newsinfo.coverPath%",realPath+newsReviewInfo.cover_path);
			currNews=currNews.replaceAll("%newsinfo.createTime%",new Date(parseInt(newsReviewInfo.create_time)).toLocaleString().replace('/:\d{1,2}$/', ' '));
			currNews=currNews.replaceAll("%newsinfo.title%",newsReviewInfo.title);
			$('#lastNewsInfo').before(currNews);
			$('#cover_'+newsReviewInfo.id).error(function(){
				noImage(this);
			});
		}
	}
	//分页
	pagnation(pageInfo.totalCount,pageInfo.totalPageCount,pageInfo.currentPageNo);
}
/**
 * 截取字符
 * @param content
 * @returns
 */
function cutString(content){
	if(content==undefined){
		return "";
	}
	if(content.length>35){
		return content.substr(0, 35)+"......"; 
	}else{
		return content;
	}
}

String.prototype.replaceAll = function(s1,s2) { 
    return this.replace(new RegExp(s1,"gm"),s2); 
};

function noImage(t){
	t.src=realPath+"/zenithsun/news/mobile/images/Default-bg270x180.png"; 
	t.onerror=null;
}

function date ( format, timestamp ) {   
    var a, jsdate=((timestamp) ? new Date(timestamp*1000) : new Date());  
    var pad = function(n, c){  
        if( (n = n + "").length < c ) {  
            return new Array(++c - n.length).join("0") + n;  
        } else {  
            return n;  
        }  
    };  
    var txt_weekdays = ["Sunday","Monday","Tuesday","Wednesday",  
        "Thursday","Friday","Saturday"];  
    var txt_ordin = {1:"st",2:"nd",3:"rd",21:"st",22:"nd",23:"rd",31:"st"};  
    var txt_months = ["", "January", "February", "March", "April",  
        "May", "June", "July", "August", "September", "October", "November",  
        "December"];   
    var f = {  
        // Day  
            d: function(){  
                return pad(f.j(), 2);  
            },  
            D: function(){  
                t = f.l(); return t.substr(0,3);  
            },  
            j: function(){  
                return jsdate.getDate();  
            },  
            l: function(){  
                return txt_weekdays[f.w()];  
            },  
            N: function(){  
                return f.w() + 1;  
            },  
            S: function(){  
                return txt_ordin[f.j()] ? txt_ordin[f.j()] : 'th';  
            },  
            w: function(){  
                return jsdate.getDay();  
            },  
            z: function(){  
                return (jsdate - new Date(jsdate.getFullYear() + "/1/1")) / 864e5 >> 0;  
            },  
  
  
        // Week  
            W: function(){  
                var a = f.z(), b = 364 + f.L() - a;  
                var nd2, nd = (new Date(jsdate.getFullYear() + "/1/1").getDay() || 7) - 1;  
  
  
                if(b <= 2 && ((jsdate.getDay() || 7) - 1) <= 2 - b){  
                    return 1;  
                } else{  
  
  
                    if(a <= 2 && nd >= 4 && a >= (6 - nd)){  
                        nd2 = new Date(jsdate.getFullYear() - 1 + "/12/31");  
                        return date("W", Math.round(nd2.getTime()/1000));  
                    } else{  
                        return (1 + (nd <= 3 ? ((a + nd) / 7) : (a - (7 - nd)) / 7) >> 0);  
                    }  
                }  
            },  
  
  
        // Month  
            F: function(){  
                return txt_months[f.n()];  
            },  
            m: function(){  
                return pad(f.n(), 2);  
            },  
            M: function(){  
                t = f.F(); return t.substr(0,3);  
            },  
            n: function(){  
                return jsdate.getMonth() + 1;  
            },  
            t: function(){  
                var n;  
                if( (n = jsdate.getMonth() + 1) == 2 ){  
                    return 28 + f.L();  
                } else{  
                    if( n & 1 && n < 8 || !(n & 1) && n > 7 ){  
                        return 31;  
                    } else{  
                        return 30;  
                    }  
                }  
            },  
  
  
        // Year  
            L: function(){  
                var y = f.Y();  
                return (!(y & 3) && (y % 1e2 || !(y % 4e2))) ? 1 : 0;  
            },  
            //o not supported yet  
            Y: function(){  
                return jsdate.getFullYear();  
            },  
            y: function(){  
                return (jsdate.getFullYear() + "").slice(2);  
            },  
  
  
        // Time  
            a: function(){  
                return jsdate.getHours() > 11 ? "pm" : "am";  
            },  
            A: function(){  
                return f.a().toUpperCase();  
            },  
            B: function(){  
                // peter paul koch:  
                var off = (jsdate.getTimezoneOffset() + 60)*60;  
                var theSeconds = (jsdate.getHours() * 3600) +  
                                 (jsdate.getMinutes() * 60) +  
                                  jsdate.getSeconds() + off;  
                var beat = Math.floor(theSeconds/86.4);  
                if (beat > 1000) beat -= 1000;  
                if (beat < 0) beat += 1000;  
                if ((String(beat)).length == 1) beat = "00"+beat;  
                if ((String(beat)).length == 2) beat = "0"+beat;  
                return beat;  
            },  
            g: function(){  
                return jsdate.getHours() % 12 || 12;  
            },  
            G: function(){  
                return jsdate.getHours();  
            },  
            h: function(){  
                return pad(f.g(), 2);  
            },  
            H: function(){  
                return pad(jsdate.getHours(), 2);  
            },  
            i: function(){  
                return pad(jsdate.getMinutes(), 2);  
            },  
            s: function(){  
                return pad(jsdate.getSeconds(), 2);  
            },  
            //u not supported yet  
  
  
        // Timezone  
            //e not supported yet  
            //I not supported yet  
            O: function(){  
               var t = pad(Math.abs(jsdate.getTimezoneOffset()/60*100), 4);  
               if (jsdate.getTimezoneOffset() > 0) t = "-" + t; else t = "+" + t;  
               return t;  
            },  
            P: function(){  
                var O = f.O();  
                return (O.substr(0, 3) + ":" + O.substr(3, 2));  
            },  
            //T not supported yet  
            //Z not supported yet  
  
  
        // Full Date/Time  
            c: function(){  
                return f.Y() + "-" + f.m() + "-" + f.d() + "T" + f.h() + ":" + f.i() + ":" + f.s() + f.P();  
            },  
            //r not supported yet  
            U: function(){  
                return Math.round(jsdate.getTime()/1000);  
            }  
    };  
  
  
    return format.replace(/[\\]?([a-zA-Z])/g, function(t, s){  
        if( t!=s ){  
            // escaped  
            ret = s;  
        } else if( f[s] ){  
            // a date function exists  
            ret = f[s]();  
        } else{  
            // nothing special  
            ret = s;  
        }  
  
  
        return ret;  
    });  
} 